<?php

// importa a biblioteca do Lumine
require_once 'Lumine/Lumine.php';
// importa as configurações do Lumine
require_once 'lumine-conf.php';
// inicia as configurações do lumine
$config = new Lumine_Configuration($lumineConfig);

// importando a classe gerada pelo lumine
Lumine::import('Pacote', 'Estado', 'Cidade', 'Pagseguro', 'Usuarios', 'Delegacao');

class ServicoConsulta {
	public static function listarEstado(){
		$estado = new Estado();
		
		try
		{
			$estado->find();
			return $estado->allToArray();
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}

	public static function listarEstadoHTML(){
		$estado = new Estado();
		
		try
		{
			$estado->find();
			$estado = $estado->allToArray();
			$html = "<select id='uf' name='uf' onchange='javascript:carregaCidades();'>";
			foreach($estado as $linha)
			{
				$html .= "<option value='".$linha["iduf"]."'>".utf8_encode($linha["nome"])."</option>";
			}
			
			$html .= "</select>";
			
			return $html;
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}
	

	public static function listarCidadesHTML($coduf){
		$cidade = new Cidade();
		
		try
		{
			$cidade->where("coduf = '".$coduf."'");
			$cidade->find();
			$cidade = $cidade->allToArray();
			$html = "<select id='cidade' name='cidade' >";
			
			foreach($cidade as $linha)
			{
				$html .= "<option value='".utf8_encode($linha["nome"])."'>".utf8_encode($linha["nome"])."</option>";
			}
			
			$html .= "</select>";
			
			return $html;
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}

	public static function listarPacoteHTML(){
		$pacote = new Pacote();
		
		try
		{
			$pacote->where("CURDATE() BETWEEN datini AND datfim");
			//$pacote->where("ativo > 0 ");
			$pacote->find();
			$pacotes = $pacote->allToArray();
			$html = "<select id='pacote' name='pacote' style='width: 250px;'>";
			
			foreach($pacotes as $linha)
			{
				$html .= "<option value='".utf8_encode($linha["codPacote"])."'>".utf8_encode($linha["desPacote"]." ( R$ ".$linha["valor"]." )")."</option>";
			}
			
			$html .= "</select>";
			
			return $html;
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}
	
	public static function getPacote($id){
		$pacote = new Pacote();
		try
		{
			$pacote->where("cod_pacote = '".$id."'");
			$pacote->find();
			$pacote = $pacote->allToArray();	
			return $pacote[0];
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
	}
	
	public static function getStatus($email){
		$pagseguro = new Pagseguro();
		
		try
		{
			$pagseguro->where(" email_cliente = '".$email."' ");
			$pagseguro->find();// executa a pesquisa
			$reg = $pagseguro->allToArray();
			return $reg[0]["status"];
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}	
	
	public static function getDelegacao($id){
		$delegacao = new Delegacao();
		try
		{
			$delegacao->where("id = '".$id."'");
			$delegacao->find();
			$delegacao = $delegacao->allToArray();	
			return $delegacao[0];
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
	}	
	
	public static function getBotao($id){
		$pacote = new Pacote();
		
		try
		{
			$pacote->where("cod_pacote = '".$id."'");
			$pacote->find();		
			$pacote = $pacote->allToArray();	

			return $pacote[0]["botao"];;
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}

	public static function listarInscritos($ini, $fim){
		$pessoa = new Pessoa();
		$pacote = new Pacote();
		$pagseguro = new Pagseguro();
		
		$pacote->alias('pacote');
		$pagseguro->alias('pagseguro');
		try
		{
			$pessoa->joinAdd($pacote,"INNER",'pacote','codPacote','codPacote');
			$pessoa->joinAdd($pagseguro,"INNER",'pagseguro','email1','emailCliente');
			$pessoa->groupBy("cpf");
			$pessoa->limit($ini, $fim);
			$pessoa->find();				
			return $pessoa->allToArray();
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}
	
	public static function listarTodosInscritos(){

		$pessoa = new Pessoa();
		$pacote = new Pacote();
		$pagseguro = new Pagseguro();
		$delegacao = new Delegacao();
		
		$delegacao->alias('delegacao');	
		$pacote->alias('pacote');
		$pagseguro->alias('pagseguro');
		try
		{
			$pessoa->select(" pessoa.nome, pessoa.universidade, pessoa.curso, pessoa.email1,
							  pacote.desPacote, delegacao.nome as delegacao, delegacao.uf as uf_delega,
							  pessoa.endereco, pessoa.fone1, pessoa.cpf, pessoa.datanasc,  
							  pessoa.uf, pessoa.cidade, pessoa.bairro ");

			$pessoa->joinAdd($pacote,"INNER",'pacote','codPacote','codPacote');
			$pessoa->joinAdd($pagseguro,"INNER",'pagseguro','email1','emailCliente');
			$pessoa->joinAdd($delegacao,"LEFT",'delegacao','delegacao','id');
			$pessoa->groupBy("cpf");
			$pessoa->find();				
			return $pessoa->allToArray();
		}catch (Exception $e)
		{
			return $e->getMessage();
		}		
	}
		
	public static function Total(){
		$pessoa = new Pessoa();
		
		try
		{
			$sql = "SELECT DISTINCT cpf as total FROM pessoa";
			
			$total = $pessoa->query($sql);		
			//$total = $pessoa->find();// executa a pesquisa		
			//$total = $pessoa->allToArray();
			
			return $total;
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
	}	
	
	public static function TotalPagos(){
		$pagseguro = new Pagseguro();
		
		try
		{
			$pagseguro->select(" count(*) as total ");
			$pagseguro->where(" status='Liberado' ");
			$pagseguro->find();// executa a pesquisa
			$total = $pagseguro->allToArray();
			return $total[0]["total"];
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}	
	
	public static function logar($usuario, $senha){
		$user = new Usuarios();
		
		try
		{
			$user->where(" login = '".$usuario."'");
			$user->find();// executa a pesquisa
			$user = $user->allToArray();
	//			echo "<pre>";
	//			print_r($user);
	//			echo "</pre>";
	//			exit;
			if (count($user) > 0)
				if ($user[0]["senha"]==$senha)
				 	return "";
				else
					return "Senha n&atilde; confere.";
			else 
				return "Senha n&atilde; confere.";
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}	
	
	// logar inscrito		
	public static function logarPessoa($email, $senha){
		$pessoa = new Pessoa();
		
		try
		{
			$pessoa->where(" email1 = '".$email."'");
			$pessoa->find();// executa a pesquisa
			$pessoa = $pessoa->allToArray();
			if (count($pessoa) > 0)
				if ($pessoa[0]["senha"]==$senha)
				 	return "";
				 else
				 	return "<b style='color: red;'>Dados inv&aacute;lidos.</b>";
			else 
				return "<b style='color: red;'>Dados inv&aacute;lidos.</b>";
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}	
	
	public static function carregaPessoa($email){
		$pessoa = new Pessoa();
		
		try
		{
			$pessoa->where(" email1 = '".$email."'");
			//return $pessoa->_getSQL();
			$pessoa->find();// executa a pesquisa
			$pessoa = $pessoa->allToArray();
			if (count($pessoa) > 0)
				return $pessoa[0];
			else 
				return "E-mail n&atilde;o encontrado.";
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}

	
	public static function listarInscPag($ini, $fim){
		$pessoa = new Pessoa();
		$pacote = new Pacote();
		$pagseguro = new Pagseguro();
		$delegacao = new Delegacao();
		
		$delegacao->alias('delegacao');
		$pacote->alias('pacote');
		$pagseguro->alias('pagseguro');
		try
		{
			$pessoa->select(" pessoa.nome, pessoa.universidade, pessoa.curso, pessoa.email1, pacote.desPacote, delegacao.nome as delegacao ");
			$pessoa->where(" pagseguro.status = 'Liberado'");
			$pessoa->joinAdd($pacote,"INNER",'pacote','codPacote','codPacote');
			$pessoa->joinAdd($pagseguro,"INNER",'pagseguro','email1','emailCliente');
			$pessoa->joinAdd($delegacao,"LEFT",'delegacao','delegacao','id');
			$pessoa->limit($ini, $fim);
			$pessoa->orderBy("nome");
			$pessoa->find();				
			return $pessoa->allToArray();
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}	

	public static function excelInscPag(){
		$pessoa = new Pessoa();
		$pacote = new Pacote();
		$pagseguro = new Pagseguro();
		$delegacao = new Delegacao();
		
		$delegacao->alias('delegacao');	
		$pacote->alias('pacote');
		$pagseguro->alias('pagseguro');
		try
		{
			$pessoa->select(" DISTINCT pessoa.nome, pessoa.universidade, pessoa.curso, pessoa.email1,
							  pacote.desPacote, delegacao.nome as delegacao, delegacao.uf as uf_delega,
							  pessoa.endereco, pessoa.fone1, pessoa.cpf, pessoa.datanasc,  
							  pessoa.uf, pessoa.cidade, pessoa.bairro ");
			$pessoa->where(" pagseguro.status = 'Liberado'");
			$pessoa->joinAdd($pacote,"INNER",'pacote','codPacote','codPacote');
			$pessoa->joinAdd($pagseguro,"INNER",'pagseguro','email1','emailCliente');
			$pessoa->joinAdd($delegacao,"LEFT",'delegacao','delegacao','id');
			$pessoa->orderBy('pessoa.nome');
			$pessoa->find();				
			return $pessoa->allToArray();
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}
	
	public static function listarInscNaoPag($ini, $fim){
		$pessoa = new Pessoa();
		$pacote = new Pacote();
		$pagseguro = new Pagseguro();
		
		$pacote->alias('pacote');
		$pagseguro->alias('pagseguro');
		try
		{
			$pessoa->where(" pagseguro.status != 'Liberado'");
			$pessoa->joinAdd($pacote,"INNER",'pacote','codPacote','codPacote');
			$pessoa->joinAdd($pagseguro,"INNER",'pagseguro','email1','emailCliente');
			$pessoa->orderBy("nome");
			$pessoa->limit($ini, $fim);
			$pessoa->find();				
			return $pessoa->allToArray();
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}
	
	public static function TotalNaoPagos(){
		$pagseguro = new Pagseguro();
		
		try
		{
			$sql = "SELECT DISTINCT email_cliente as total FROM pagseguro WHERE status != 'Liberado'";
			
			$total = $pagseguro->query($sql);
			return $total;
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}	
	
	public static function excelInscNaoPag(){

	
		$pessoa = new Pessoa();
		$pacote = new Pacote();
		$pagseguro = new Pagseguro();
		$delegacao = new Delegacao();
		
		$delegacao->alias('delegacao');	
		$pacote->alias('pacote');
		$pagseguro->alias('pagseguro');
		try
		{
			$pessoa->select(" pessoa.nome, pessoa.universidade, pessoa.curso, pessoa.email1,
							  pacote.desPacote, delegacao.nome as delegacao, delegacao.uf as uf_delega,
							  pessoa.endereco, pessoa.fone1, pessoa.cpf, pessoa.datanasc,  
							  pessoa.uf, pessoa.cidade, pessoa.bairro ");
			$pessoa->where(" pagseguro.status != 'Liberado'");
			$pessoa->joinAdd($pacote,"INNER",'pacote','codPacote','codPacote');
			$pessoa->joinAdd($pagseguro,"INNER",'pagseguro','email1','emailCliente');
			$pessoa->joinAdd($delegacao,"LEFT",'delegacao','delegacao','id');
			$pessoa->groupBy("cpf");
			$pessoa->orderBy("nome");
			$pessoa->find();				
			
			return $pessoa->allToArray();
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
	}
	
	
	public static function listarTrab($ini, $fim){
		$pessoa = new Pessoa();
		$pacote = new Pacote();
		$pagseguro = new Pagseguro();
		
		$pessoa->alias('pessoa');
		$pacote->alias('pacote');
		$pagseguro->alias('pagseguro');
		try
		{
			$pessoa->where(" pessoa.file IS NOT NULL ");
			$pessoa->joinAdd($pacote,"INNER",'pacote','codPacote','codPacote');
			$pessoa->joinAdd($pagseguro,"INNER",'pagseguro','email1','emailCliente');
			$pessoa->limit($ini, $fim);
			$pessoa->find();				
			return $pessoa->allToArray();
		}catch (Exception $e)
		{
			return $e->getMessage();
		}		
	}
	
	public static function TotalTrabalhos(){
		$pessoa = new Pessoa();
		
		try
		{
			$pessoa->select(" count(*) as total ");
			$pessoa->where(" file IS NOT NULL ");
			$pessoa->find();// executa a pesquisa
			$total = $pessoa->allToArray();
			return $total[0]["total"];
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}
	
	// CURRICULOS
	public static function listarCurriculo($ini, $fim){
		$pessoa = new Pessoa();
		$pacote = new Pacote();
		$pagseguro = new Pagseguro();
		
		$pessoa->alias('pessoa');
		$pacote->alias('pacote');
		$pagseguro->alias('pagseguro');
		try
		{
			$pessoa->where(" pessoa.curriculo IS NOT NULL ");
			$pessoa->joinAdd($pacote,"INNER",'pacote','codPacote','codPacote');
			$pessoa->joinAdd($pagseguro,"INNER",'pagseguro','email1','emailCliente');
			$pessoa->limit($ini, $fim);
			$pessoa->find();				
			return $pessoa->allToArray();
		}catch (Exception $e)
		{
			return $e->getMessage();
		}		
	}
	
	public static function TotalCurriculo(){
		$pessoa = new Pessoa();
		
		try
		{
			$pessoa->select(" count(*) as total ");
			$pessoa->where(" curriculo IS NOT NULL ");
			$pessoa->find();// executa a pesquisa
			$total = $pessoa->allToArray();
			return $total[0]["total"];
			
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}
	
	// FIM CURRICULO
	
	public static function listarDelegacoesHTML(){
		$delegacao = new Delegacao();
		
		try
		{
			$delegacao->orderBy("id");
			$delegacao->find();
			$delegacoes = $delegacao->allToArray();
			$html = "<select id='delegacao' name='delegacao' style='width: 250px;'>";
			
			foreach($delegacoes as $linha)
			{
				$html .= "<option value='".utf8_encode($linha["id"])."'>".utf8_encode($linha["nome"]." - ".$linha["uf"])." </option>";
			}
			
			$html .= "</select>";
			
			return $html;
		}catch (Exception $e)
		{
			return $e->getMessage();
		}
		
	}	
}

